/*****用户模块********/
import { defineStore } from 'pinia'
const cacheNameList = ['userInfo']
export const useStore = defineStore('userInfo', {
  // 为了完整类型推理，推荐使用箭头函数
  state: () => {
    return {
      // 所有这些属性都将自动推断出它们的类型
      userInfo: {
      }
    }
  },
  actions: {
    /** *设置用户信息****/
    setUserInfo(data) {
      if (data) {
        this.userInfo = Object.assign({}, this.userInfo, data)
      }
      // #ifdef H5
      window.sessionStorage.setItem('userInfo', JSON.stringify(this.userInfo))
      // #endif
      // #ifndef H5
      uni.setStorageSync('userInfo', this.userInfo)
      // #endif
    },
    /** *取出缓存数据****/
    setCacheData() {
      for (const name of cacheNameList) {
        let data = ''
        // #ifndef H5
        data = uni.getStorageSync(name)
        // #endif
        // #ifdef H5
        data = sessionStorage.getItem(name) || localStorage.getItem(name)
        // #endif
        if (data) {
          // #ifdef H5
          try {
            data = JSON.parse(data)
            if (data.data && data.type) {
              data = data.data
            }
          } catch (e) {}
          // #endif
          this[name] = data
        }
      }
    },
    // 退出APP
    emptyUserInfo() {
      this.userInfo = {};
      // #ifdef H5
      window.sessionStorage.removeItem("userInfo");
      // #endif
      // #ifndef H5
      uni.removeStorageSync("userInfo");
      // #endif
    },
  },
  getters: {
    getToken() {
      return this.userInfo.token
    }
  }
})
